package com.ks.system.controller;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ks.response.Result;
import com.ks.system.entity.Log;
import com.ks.system.service.LogService;
import com.ks.system.vo.LogVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 操作日志表 前端控制器
 * </p>
 *
 * @author ks
 * @since 2020-12-01
 */
@RestController
@RequestMapping("/system/log")
@Api(tags = "系统操作日志接口")
@CrossOrigin
public class LogController {

    @Autowired
    private LogService logService;


    /**
     *  操作日志列表
     * @param pageNum 分页条数
     * @param pageSize 分页页码
     * @param logVO 分页条件
     * @return Result json数据
     */
    @ApiOperation(value = "操作日志列表")
    @GetMapping("/logList")
    public Result logList(@RequestParam("pageNum") Integer pageNum,
                          @RequestParam("pageSize") Integer pageSize, LogVO logVO){
        Page<Log> logList = logService.findLogList(new Page<>(pageNum, pageSize), logVO);
        if (!CollectionUtils.isEmpty(logList.getRecords())){
            return Result.ok().data("logList",logList);
        }
        return Result.error().message("暂无数据");
    }


    /**
     * 根据ID删除操作日志
     * @param id 日志ID
     * @return 返回操作结果
     */
    @ApiOperation(value = "删除操作日志")
    @PostMapping("/deleteById/{id}")
    public Result deleteById(@PathVariable Long id){
        Integer count = logService.delete(id);
        if (count > 0)return Result.ok().message("日志删除成功");
        return Result.error().message("出现未知异常删除失败，请联系管理员处理");
    }


    /**
     * 批量删除操作日志
     * @param ids 日志ID数组
     * @return 返回操作结果
     */
    @ApiOperation("批量删除操作日志")
    @PostMapping("/batchDelete/{ids}")
    public Result batchDelete(@PathVariable String ids){
        String[] split = ids.split(",");
        List<Long> list = new ArrayList();
        if (split.length > 0){
            for (String id : split){
                list.add(Long.parseLong(id));
            }
        }
        logService.batchDelete(list);
        return Result.ok().message("删除成功");
    }
}

